The subject matter described herein relates to provisioning of email accounts for users. Electronic mail, or “email,” is a common method of composing, sending, receiving, and storing messages over electronic communications systems. In order to send and receive email, a user has an email address that is associated with a physical storage space on a server, from which the user can send and retrieve email using an email client. This server space and associated email address is typically referred to as an email account. Many companies provide so called hosted solutions, in which the company sets up the account and provides the server space and the user can access the email account through an email client or a web-based interface. Emails typically have the format person@example.com, where “person” is the local part of the email address and “example.com” is the domain for the email address.
Provisioning of user email accounts, particularly in bulk, can be a very complex process, especially in a hosted environment where a very large number of accounts typically need to be provisioned. Conventionally, a computer system administrator determines what user accounts need to be created, and then manually creates an account for each user through an application programming interface (API). Alternatively, the administrator can upload a file with the parameters for all the user accounts that need to be created, and then specify various settings for the accounts using the API. This can be very time consuming and error prone, especially when migrating a large number of users from an old system to a new system.